Moderate: Red Hat Enterprise MRG Messaging 2.3 security update

Related Vulnerabilities: CVE-2012-4446   CVE-2012-4458   CVE-2012-4459   CVE-2012-4446   CVE-2012-4459   CVE-2012-4458  

Synopsis

Moderate: Red Hat Enterprise MRG Messaging 2.3 security update

Type/Severity

Security Advisory: Moderate

Topic

Updated Messaging component packages that fix multiple security issues,
several bugs, and add various enhancements are now available for Red Hat
Enterprise MRG 2.3 for Red Hat Enterprise Linux 5.

The Red Hat Security Response Team has rated this update as having moderate
security impact. Common Vulnerability Scoring System (CVSS) base scores,
which give detailed severity ratings, are available for each vulnerability
from the CVE links in the References section.

Description

Red Hat Enterprise MRG (Messaging, Realtime, and Grid) is a next-generation
IT infrastructure for enterprise computing. MRG offers increased
performance, reliability, interoperability, and faster computing for
enterprise customers.

MRG Messaging is a high-speed reliable messaging distribution for Linux
based on AMQP (Advanced Message Queuing Protocol), an open protocol
standard for enterprise messaging that is designed to make mission critical
messaging widely available as a standard service, and to make enterprise
messaging interoperable across platforms, programming languages, and
vendors. MRG Messaging includes an AMQP 0-10 messaging broker; AMQP 0-10
client libraries for C++, Java JMS, and Python; as well as persistence
libraries and management tools.

It was found that the Apache Qpid daemon (qpidd) treated AMQP connections
with the federation_tag attribute set as a broker-to-broker connection,
rather than a client-to-server connection. This resulted in the source user
ID of messages not being checked. A client that can establish an AMQP
connection with the broker could use this flaw to bypass intended
authentication. For Condor users, if condor-aviary is installed, this flaw
could be used to submit jobs that would run as any user (except root, as
Condor does not run jobs as root). (CVE-2012-4446)

It was found that the AMQP type decoder in qpidd allowed arbitrary data
types in certain messages. A remote attacker could use this flaw to send a
message containing an excessively large amount of data, causing qpidd to
allocate a large amount of memory. qpidd would then be killed by the Out of
Memory killer (denial of service). (CVE-2012-4458)

An integer overflow flaw, leading to an out-of-bounds read, was found in
the Qpid qpid::framing::Buffer::checkAvailable() function. An
unauthenticated, remote attacker could send a specially-crafted message to
Qpid, causing it to crash. (CVE-2012-4459)

The CVE-2012-4446, CVE-2012-4458, and CVE-2012-4459 issues were discovered
by Florian Weimer of the Red Hat Product Security Team.

This update also fixes several bugs and adds enhancements. Documentation
for these changes will be available shortly from the Technical Notes
document linked to in the References section.

All users of the Messaging capabilities of Red Hat Enterprise MRG are
advised to upgrade to these updated packages, which resolve these issues,
and fix the bugs and add the enhancements noted in the Red Hat Enterprise
MRG 2 Technical Notes. After installing the updated packages, stop the
cluster by either running "service qpidd stop" on all nodes, or
"qpid-cluster --all-stop" on any one of the cluster nodes. Once stopped,
restart the cluster with "service qpidd start" on all nodes for the update
to take effect.

Solution

Before applying this update, make sure all previously-released errata
relevant to your system have been applied.

This update is available via the Red Hat Network. Details on how to
use the Red Hat Network to apply this update are available at
https://access.redhat.com/knowledge/articles/11258

Affected Products

  • MRG Grid from RHUI 2 for RHEL 5 x86_64
  • Red Hat Enterprise MRG Messaging 2 for RHEL 5 x86_64
  • Red Hat Enterprise MRG Messaging 2 for RHEL 5 i386
  • MRG Grid 2 for RHEL 5 x86_64
  • MRG Grid 2 for RHEL 5 i386

Fixes

  • BZ - 678612 - service qpidd stop [failed] - with --log-to-stdout yes
  • BZ - 710787 - Client doesn't completely honor reconnect=false Connection option
  • BZ - 720714 - Clustered broker exits with invalid-argument error after attempting to create dynamic federation bridge
  • BZ - 737685 - Acquired messages are not sent to alternate exchange when queue is deleted and receiver's session closed
  • BZ - 740485 - qpid-stat is unable to get info from a remote host
  • BZ - 754990 - qpidd broker ring queue limit depth working differently with --default-queue-limit=0 vs. default
  • BZ - 773719 - Concurrent queue bind on the same queue results in crash
  • BZ - 781496 - Incorrect timestamp returned by query method call
  • BZ - 782806 - [RFE] Python qpid client ssl support
  • BZ - 783215 - An error shall be raised rather than purge of messages when rerouting to alt-exchange and alt-exchange doesn't exist
  • BZ - 784957 - Qpid broker ACL processing produces unexpected results
  • BZ - 786555 - qpid-config add queue <existing_queue_name> returns success.
  • BZ - 790004 - Cluster URL option does not contain IPv6 addresses by default
  • BZ - 800912 - qpid-perftest stucks when iterations>1 and npubs<nsubs
  • BZ - 801605 - Non-responsive peer in federated link can result in entire cluster shutdown
  • BZ - 804752 - TransportFailure exception deadlock
  • BZ - 813742 - queue replication fails when org.apache.qpid.example.Spout is used
  • BZ - 814356 - createSender() ignores 'create: never'
  • BZ - 834256 - Alternate exchange is not applied when defined in the link properties
  • BZ - 846465 - sasl mech list overhaul
  • BZ - 849788 - ERD 4.1.3: Acl-1000-6, Substitution symbol for the actual user name in an ACL
  • BZ - 849790 - ERD 4.1.3: Acl-1000-8, An API for "If I tried this, would it be allowed"
  • BZ - 851355 - CVE-2012-4446 qpid-cpp: qpid authentication bypass
  • BZ - 856299 - Sender.send(timeout=N) should pass timeout=N to self.sync()
  • BZ - 860011 - JMS client: node binding not created for topic node
  • BZ - 861234 - CVE-2012-4458 qpid-cpp: long arrays of zero-width types cause a denial of service
  • BZ - 861241 - CVE-2012-4459 qpid-cpp: crash due to qpid::framing::Buffer::checkAvailable() wraparound
  • BZ - 861838 - Broker can delete a dynamic bridge upon error instead of attempting to recover
  • BZ - 866677 - [RFE] Improved broker logging for expired messages
  • BZ - 868403 - Channel collision on federated link after creating/deleting ~64K bridges
  • BZ - 868881 - qpidd logging: too many JournalInactive messages by default - request for logging level change info -> debug or change periodicity
  • BZ - 870058 - qpidd --config <directory> hangs during startup
  • BZ - 871774 - Browser may read messages acquired by other consumer on message group queue
  • BZ - 876193 - No exception on creating already existing broker object (but declaring it as different type)
  • BZ - 876664 - Some change in exception handling
  • BZ - 877081 - Broker crash re-routing messages through a header exchange
  • BZ - 877553 - Crash traced to generated QMF code
  • BZ - 882243 - Failover doesn't work properly with XA
  • BZ - 884036 - testConversionsFromString c++ unit test failing
  • BZ - 888392 - QpidConnectionFactoryProxy Should Implement Queue/TopicConnectionFactory Interfaces
  • BZ - 893980 - Timeout waiting for sync on declaring queue/topic with the same identifier
  • BZ - 895535 - 'ssl_key' connection option is not working as expected

CVEs

References